Skip to content

mthds-1-Rename parallels to branches#665

Open
lchoquel wants to merge 127 commits intofeature/Chicagofrom
feature/Epic-mthds-1
Open

mthds-1-Rename parallels to branches#665
lchoquel wants to merge 127 commits intofeature/Chicagofrom
feature/Epic-mthds-1

Conversation

@lchoquel
Copy link
Member

@lchoquel lchoquel commented Feb 11, 2026

Summary

  • Rename parallels field to branches on PipeParallelBlueprint and PipeParallelSpec — aligns field name with branch terminology already used in docs. Updates all models, factory, builder loop, CLI, builder prompt, docs, README, PLX test data, and test files. Adds a parallels → branches migration mapping entry so users get a helpful error on the old name.
  • Add unit tests for StuffFactory.combine_stuffs — covers success cases (multi-field, single-field, auto-generated name) and error cases (missing required field, wrong content type). Removes the corresponding TODO comment.

Test plan

  • make agent-check passes (pyright, ruff, mypy — 0 errors)
  • make agent-test passes (full unit test suite)
  • make tb passes (boot sequence validates config with new migration entry)
  • pipelex validate --all passes
  • New TestStuffFactoryCombineStuffs tests pass (5/5)

🤖 Generated with Claude Code


Note

Medium Risk
Broad, repo-wide doc/tooling updates are low impact, but the PipeParallel field rename can break existing bundles unless runtime migration/backward-compat handling is correct.

Overview
Renames PipeParallel’s configuration field from parallels to branches (including docs/examples), and updates various references from .plx to .mthds terminology across README and documentation.

Improves developer tooling by adding plxt TOML/MTHDS formatting+linting (new make plxt-* targets, integrated into make format/lint), adding Pipelex editor config (.pipelex/plxt.toml, VS Code formatter settings), and introducing a Claude session start hook that auto-installs deps in remote Claude Code sessions. Also updates docs deploy automation to publish root gh-pages assets (robots.txt, index.html, 404.html).

Written by Cursor Bugbot for commit e0ac60c. This will update automatically on new commits. Configure here.

lchoquel and others added 3 commits February 11, 2026 15:35
The docs already use "branch" terminology extensively; this aligns the
field name with the conceptual model. A migration mapping entry
(`parallels → branches`) is added so users get a helpful error on the
old name.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tests cover success cases (multi-field, single-field, auto-generated
name) and error cases (missing required field, wrong content type).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cf0ce47857

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@lchoquel
Copy link
Member Author

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

🤖 Generated with Claude Code

lchoquel and others added 12 commits February 11, 2026 18:03
…"method"

MTHDS is the new name for the open standard. Pipelex remains the reference
implementation. This is a hard switch with no backward-compatible .plx loading.

- Add MTHDS_EXTENSION constant in helpers.py as single source of truth
- Rename Plx* classes to Mthds* (PlxFactory -> MthdsFactory, PlxConfig -> MthdsConfig)
- Rename all .plx files to .mthds (builder bundles, test fixtures)
- Update functions/variables referencing "plx" as file format
- Update TOML config sections (plx_config -> mthds_config)
- Update all CLI help text, error messages, and examples
- Update documentation and README ("workflow" -> "method" for MTHDS concept)
- Update VS Code config file associations

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rename doc files: kick-off-a-pipelex-workflow-project.md →
  kick-off-a-methods-project.md, write-workflows-manually.md →
  write-methods-manually.md, configure-ai-llm-to-optimize-workflows.md →
  configure-ai-llm-to-optimize-methods.md
- Rename plx_content → mthds_content and plx_file_path → mthds_file_path
  across all pipeline, CLI, client, builder, and test files
- Rename PLXDecodeError → MthdsDecodeError class and all references
- Rename to_plx_dict() → to_mthds_dict() method and all call sites
- Rename invalid_plx.py → invalid_mthds.py test data file
- Update all remaining PLX/plx references in comments, docstrings,
  error messages, test identifiers, and template files
- Update mkdocs.yml nav paths and site_description
- Update all cross-references to renamed doc files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update remaining instances where "workflow" referred to Pipelex
executable methods in docstrings, error messages, and project docs.
Generic programming usage of "workflow" is left unchanged.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…lization

Introduces a new EdgeKind.PARALLEL_COMBINE to show how individual branch
outputs are merged into the combined result in PipeParallel, analogous to
BATCH_AGGREGATE for PipeBatch. The edges render as purple dashed lines in
ReactFlow and Mermaid views. The graph tracer snapshots original branch
producers before register_controller_output overrides the producer map,
ensuring correct edge source resolution during teardown.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…branch variant

Wrap the combined_output test in a PipeSequence with a follow-up PipeLLM
that consumes the combined result, making the graph more realistic. Add a
new 3-branch PipeParallel test with selective downstream consumption where
2 branches are consumed and 1 is unused. Parametrize the test to cover both
variants.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Introduce QualifiedRef as the centralized model for domain-qualified
reference parsing, replacing scattered .split(".")/rsplit(".") calls
across 8+ files. This enables hierarchical domains (e.g. "legal.contracts")
and domain-qualified pipe references (e.g. "scoring.compute_score"),
making pipes symmetric with the existing concept reference system.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Batch/parallel edges were referencing controller node IDs, but controllers
are rendered as Mermaid subgraphs (not nodes), creating phantom auto-generated
nodes. Fix by using source_stuff_digest/target_stuff_digest to connect
stuff-to-stuff instead, rendering missing stuff nodes on the fly. Also place
parallel_combine target stuffs inside their controller's subgraph and use
plain dashed arrows (-.->)  when edge labels are empty to avoid Mermaid
syntax errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…CLI (Phase 2)

Introduce the package manifest system for .mthds bundles: MthdsPackageManifest
data model with TOML parsing/serialization, walk-up manifest discovery, cross-domain
pipe visibility enforcement against [exports], cross-package -> reference detection,
CLI commands (pipelex pkg init/list), and builder awareness for multi-domain output.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@lchoquel lchoquel changed the title Rename parallels to branches, add combine_stuffs tests mthds-1-Rename parallels to branches Feb 12, 2026
lchoquel and others added 9 commits February 12, 2026 10:20
…ackage manifest

Make description a required field on MthdsPackageManifest (no longer optional),
add version constraint validation for dependencies (supporting ^, ~, >=, <=, >,
<, ==, !=, comma-separated, and wildcard syntax), and update all test fixtures
and invalid manifest files to include the now-required description field.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New pages: packages.md (manifest reference, exports/visibility, dependencies,
directory structure, quick start) and pkg.md (CLI reference for pkg init/list).
Updated domain.md with hierarchical domains section, project-organization.md
with METHODS.toml in project tree, CLI index with pkg command row, and
mkdocs.yml nav entries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…date_all

Add a step-by-step manual testing guide (refactoring/testing-package-system.md)
with ready-to-use .mthds fixture files covering local visibility enforcement
and cross-package reference syntax. Mark test_validate_all as xfail since the
test fixtures contain intentional visibility violations for testing purposes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… file discovery order)

On Linux/GHA, file discovery order differs from macOS: the visibility check
may not find the fixture METHODS.toml, causing a DomainLibraryError from
duplicate 'scoring' domain instead of the LibraryLoadingError seen locally.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Non-table dependency values (e.g. `foo = "1.0.0"`) were silently dropped
during parsing, causing confusing errors later during alias resolution.
Now raises ManifestValidationError immediately with a clear message.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The export-building loop in do_pkg_init was using sorted(pipe_codes)
and ignoring the populated domain_main_pipes dict, making it dead code.
Now matches the sibling pattern in builder_loop.py by placing main_pipe
first in each domain's export list before appending remaining pipes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Deduplicate ~35 lines of identical .mthds scanning and DomainExports
building logic from builder_loop.py and init_cmd.py into two shared
functions in pipelex/core/packages/bundle_scanner.py, reducing
divergence risk when fixing or extending this code path.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…INE unit test

The controller_combine_digests set was populated but never read anywhere in the
codebase. The controller_output_stuffs dict already tracks the same digests and
is the structure actually used for rendering. Added a unit test covering the
PARALLEL_COMBINE subgraph rendering path to guard against future regressions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
lchoquel and others added 23 commits February 16, 2026 11:07
Make `format` and `lint` composite targets that include both ruff and plxt,
replacing the previous flat structure where plxt targets were bolted on
separately. Adds dedicated `ruff-format` and `ruff-lint` targets, re-enables
plxt-format/plxt-lint (previously no-op), and simplifies `c` and `agent-check`.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
mths-7 Add plxt tooling and MTHDS JSON Schema generator
…erator, and pipelex-dev CLI

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Standardize formatting across all .toml and .mthds files: 2-space array
indentation, aligned key-value pairs, trailing commas, and consistent
inline table spacing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Write the complete normative reference for the MTHDS standard covering
.mthds file format, METHODS.toml manifest, methods.lock format, and
namespace resolution rules. All field names, enum values, and validation
rules verified against the codebase implementation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Covers Pillar 1 of the MTHDS standard: Bundles, Concepts, Pipes (Operators
and Controllers), Domains, and Namespace Resolution. Example-led teaching
style with all technical claims verified against the codebase.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Covers Pillar 2 of the MTHDS standard across 9 pages: Package Structure,
Manifest, Exports & Visibility, Dependencies, Cross-Package References,
Lock File, Distribution, Version Resolution, and the Know-How Graph.

Also fixes awkward `method.mthds` filename to `main.mthds` in the minimal
package example (both in 02 and 03-specification.md).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Landing page with four entry points and conceptual overview covering
the Two Pillars, core concepts, progressive enhancement, and
differentiators. Reuses joke generation example for cross-doc consistency.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…des.md)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…about.md)

Final document in the 6-part MTHDS documentation series. Covers building
a compliant runtime (loader architecture, validation stages, dependency
resolution with MVS and diamond handling, visibility checking), building
editor support (TextMate grammar, semantic tokens, JSON Schema, LSP),
design philosophy, Agent Skills comparison, roadmap, and contributing.
All open questions from previous sessions resolved (model routing profiles,
TemplateBlueprint advanced features, install-time validation).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Document the comprehensive cross-document review covering 7 codebase
spot-checks and 5 cross-document consistency checks, all passing with
no issues found.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rename docs-deploy-404 to docs-deploy-root and extend it to deploy three
root assets instead of one: robots.txt (blocks crawlers from indexing
duplicate versioned paths), index.html (meta-refresh redirect to /latest/
with canonical link), and the existing 404.html.

Reverse deploy ordering so mike runs first (ensuring gh-pages exists),
then root assets are layered on top. Add git fetch for CI compatibility
where the local gh-pages ref may not exist.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fail early with a clear error if SITE_DOMAIN is empty, preventing
malformed URLs (https:///...) from being silently published to gh-pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
mthds-12 Phases 6-7: domain enforcement, version validation, type search, and composition
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

lchoquel and others added 6 commits February 17, 2026 17:29
When `pipes` was present in a domain dict but not a list (e.g.,
`pipes = "single_pipe"`), the domain's exports were silently ignored.
Now raises ManifestValidationError with a clear message instead of
bypassing Pydantic validation entirely.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Close validation gaps in manifest models: reject empty/whitespace author
strings and license values, detect unknown keys in [package] TOML section,
and add tests for extra="forbid" enforcement and description whitespace
variants.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Introduce a cosmetic display_name field in [package] for human-friendly
labels in CLI output and registry listings. The field is validated
(non-empty when provided, max 128 chars, no control characters, strips
whitespace, emojis allowed) and never used as an identifier — address
remains the sole canonical key.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add optional display_name field to MTHDS package manifest
PipeLibrary.get_optional_pipe now verifies the domain path matches the
pipe's actual domain_code, returning None on mismatch instead of silently
ignoring the qualifier. QualifiedRefError is caught gracefully so that
malformed refs return None rather than raising.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Validate domain in qualified pipe lookups and handle parse errors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments